package cn.tedu._04mybatis.mapper;

import cn.tedu._04mybatis.pojo.entity.Comment;
import cn.tedu._04mybatis.pojo.vo.*;
import org.apache.ibatis.annotations.*;

import java.util.List;

/**
 * 7.3 练习
 *
 * 创建实体类: Comment
 * 定义接口文件：CommentMapper
 * 插入: insertComment , 在评论表中插入1条数据;
 * 删除: deleteById , 根据id删除1条评论;
 * 修改: updateById , 根据id修改评论信息;
 * 查询: selectCommentById1，根据评论的id查询评论的 内容、用户ID、微博ID（数据库表中确认）
 * 查询 selectCommentById2，根据微博的id查询评论的 内容、用户ID（数据库表中确认）
 */
@Mapper
public interface CommentMapper {
//    @Insert("INSERT INTO comment(content,created,user_id,weibo_id) VALUES(#{content},#{created},#{userId},#{weiboId})")
    int insertComment(Comment comment);

//    @Delete("DELETE FROM comment WHERE id=#{id}")
    int deleteById(int id);

//    @Update("UPDATE comment SET content=#{content},created=#{created},user_id=#{userId},weibo_id=#{weiboId} WHERE id=#{id}")
    int updateById(Comment comment);

//    @Select("SELECT content,user_id userId,weibo_id weiboId FROM comment WHERE id=#{cid}")
    CommentVO1 selectCommentById1(int cid);

//    @Select("SELECT content,user_id userId FROM comment WHERE weibo_id=#{wid}")
    List<CommentVO2> selectCommentById2(int wid);

    /**
     * 以下全部为ResultMap的使用示例
     */
    //单表:根据微博的id查询该条微博的信息
    ResultMapVO1 selectMap1(int wid);

    //多表:获取指定用户[user_id]发的微博信息:用户id,用户昵称,微博的所有数据List<weibo>
    ResultMapVO2 selectMap2(int uid);

    //根据微博ID获取该条微博的所有评论信息,显示:微博id,微博内容,评论的所有信息List<Comment>
    ResultMapVO3 selectMap3(int wid);

    //根据微博ID获取该条微博的所有评论信息,显示:微博id,微博内容,评论的ID,评论内容,评论时间
    ResultMapVO4 selectMap4(int wid);
}
